<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>开始使用 layui</title>
    <!-- 引入 layui.css -->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/layui/2.10.3/css/layui.css" rel="stylesheet"/>

    <!-- 引入 layui.js -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/layui/2.10.3/layui.js"></script>

    <!-- 引入 xlsx 库 -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
</head>
<body>
<button type="button" class="layui-btn" onclick="exportExcel()">导出 Excel</button>

<script>
    layui.use(['layer', 'table', 'form'], function () {
        var layer = layui.layer;
        var form = layui.form;
        var table = layui.table;

        exportExcel();

        function exportExcel() {
            // 定义数据
            var data = [
                ['名字', '性别', '年龄'],
                ['张三', '男', '20'],
                ['李四', '女', '18'],
                ['王五', '女', '19']
            ];

            // 定义合并单元格的范围
            var merges = [
                {s: {r: 1, c: 0}, e: {r: 2, c: 0}}, // 合并第2行到第3行的第1列
                {s: {r: 1, c: 1}, e: {r: 1, c: 2}}  // 合并第2行的第2列到第3列
            ];

            // 创建工作表
            var ws = XLSX.utils.aoa_to_sheet(data);
            ws['!merges'] = merges;

            // 创建工作簿
            var wb = XLSX.utils.book_new();
            XLSX.utils.book_append_sheet(wb, ws, "Sheet1");

            // 导出 Excel 文件
            XLSX.writeFile(wb, '导出文件.xlsx');
        }
    });
</script>
</body>
</html>
